The present invention relates generally to the field of multicomputer data transferring and more particularly to data transfer using an adapter with dynamically determined, adjusted polling parameters.
A software adapter is a type of software that is logically located between two software components and reconciles differences between the components to enable data transfer and communication. One example of a software adapter is a resource adapter that retrieve and route data, provide access to databases, files, messaging systems, enterprise applications and other similar data sources. Each software adapter may include a set of adapter commands to specify different data queues, queue managers, specific messages and other similar information and data. Software adapters typically include various integration products to enable data transformation and adapter-specific behavior on different systems and data structures in addition to extending service-oriented architecture applications.
A software adapter enables two-way communication, for example, between an application running on an application server, process manager, or a service bus and an enterprise information system (EIS). With a software adapter, an application can send requests to an EIS, as well as receive data or events from an EIS. The bi-directional data flow may be inbound or outbound. In the case of inbound event flow, two modes of operation are commonly used. A pull or poll model in which the client system or application polls the EIS at regular intervals for data or events, and a push model in which the EIS sends events to the client system or application, as the events are generated.
In a pull model, a software adapter may be configured to poll the EIS on a scheduled interval to retrieve a number of events. The selection and determination of the schedule for polling and the number of events provided in a poll cycle are important for efficient data and event transfer between software or system components (e.g., bandwidth between the EIS, an adapter and the client system or application).